<html>
<head>
<link href="../../Objects/sofa_white.css" rel="stylesheet" type="text/css" />
</head>
<body>
	<div id="contenu">		
		<center><h3>Topology Volume Different Mesh</h3></center>
	        <center><img src="TopologyVolumeDifferentMesh_01.png" width="300" name="TopologyVolumeDifferentMesh" align="middle"></center>		  
	<br>	
	<div id="orangeText">Description</div>
	<br>
<div align="left">
	The aim of this tutorial is to show the different ways to create 3D volume mesh topologies. In this tutorial, three cylinders are represented, implying:
	  <ul>
		<li>A mesh loader to read mesh file. (not necessary in regular mesh)</li>
		<li>A mechanicalObject with geometry point positions.</li>
		<li>A mass for gravity and fixed points.</li>
		<li>A FEM forcefield to create interactions between points</li>
		<li>An ODE scheme and a linear solver to solve the system at each time step.</li>
		<li>A topological component.</li>
		<li>A visual model which reproduces the current model geometry thanks to the identity mapping.</li>
	</ul>
        <br>
	<div id="orangeText">Key points</div>
	<br>
	There are three possible ways to build a 3D volume mesh using the following components.
	These components are extensions of the ones explained in the <a href="TopologyLinearDifferentMesh.scn">Tutorial Topology Linear Different Mesh</a>.
	<ul>
		<li><b>MeshTopology</b> creates a static mesh. Here there are tetrahedra, triangles and edges, using a mesh file. But no modifications are possible.</li>
		<li><b>CylinderGridTopology</b> creates a regular mesh. Here there are regular hexahedra. No mesh file is needed, using only boundaries and the scaling. CylinderGridTopology is an extension of the RegularGridTopology which would create a cube in this case.</li>
		<li><b>TriangleSetTopologyContainer</b> creates a dynamic mesh. Here there are tetrahedra, triangles and edges, using a mesh file. Other classes can be added to perform topological operations. Classes are TetrahedronSetTopologyModifier (for unitary operation), TetrahedronSetTopologyAlgorithms (for more complex topological operations) and TetrahedronSetGeometryAlgorithms (to couple topology algorithms and geometry positions). </li>
	</ul>	
	<br>
	<div id="orangeText">Results</div>
	<br>
	Thus, when simulated, the three models will fall due to gravity. A different behavior can be noticed for the regular grid near the fixed points due to the different topology elements used (hexahedra versus tetrahedra).
	<br>
	Note that it is possible to change the behavior for the regular grid, using a topological mapping. See <a href="TopologyHexa2TetraTopologicalMapping.scn">TutorialTopologyHexa2TetraTopologicalMapping</a>.
	<br>
	<center><img src="TopologyVolumeDifferentMesh_02.png" width="300" name="TopologyVolumeDifferentMesh" align="middle">
	</center>
</div>
</div>
</body>
</html>
